babl: use memcpy dpsatch path for all identity transforms
authorØyvind Kolås <pippin@gimp.org>
Mon, 15 Jan 2018 21:41:03 +0000 (22:41 +0100)
committerØyvind Kolås <pippin@gimp.org>
Mon, 15 Jan 2018 21:41:10 +0000 (22:41 +0100)
babl/babl-fish-path.c

index 19d7f14cbbe7ee33bab26ef6d1dc22a9a922f1c7..8b614e8851e1834a6d51b6972738793f5d9f98da 100644 (file)
@@ -668,19 +668,18 @@ babl_fish_memcpy_process (const Babl *babl,
 void
 _babl_fish_rig_dispatch (Babl *babl)
 {
+  babl->fish.data     = (void*)&(babl->fish.data);
+
+  if (babl->fish.source == babl->fish.destination)
+    {
+      babl->fish.dispatch = babl_fish_memcpy_process;
+      return;
+    }
+
   switch (babl->class_type)
     {
       case BABL_FISH_REFERENCE:
-        if (babl->fish.source == babl->fish.destination)
-          {
-            babl->fish.dispatch = babl_fish_memcpy_process;
-            babl->fish.data     = (void*)&(babl->fish.data);
-          }
-        else
-          {
-            babl->fish.dispatch = babl_fish_reference_process;
-            babl->fish.data     = (void*)&(babl->fish.data);
-          }
+        babl->fish.dispatch = babl_fish_reference_process;
         break;
 
       case BABL_FISH_SIMPLE:
@@ -706,12 +705,10 @@ _babl_fish_rig_dispatch (Babl *babl)
           /* do same short-circuit optimization as for simple fishes */
 
           babl->fish.dispatch = conversion->dispatch;
-          babl->fish.data     = &conversion->data;
         }
         else
         {
           babl->fish.dispatch = babl_fish_path_process;
-          babl->fish.data     = (void*)&(babl->fish.data);
         }
         break;